package org.example.service.project;

import com.baomidou.mybatisplus.extension.service.IService;
import org.example.model.common.PageResponseDto;
import org.example.model.common.ResponseResult;
import org.example.model.project.dtos.ProjectInfoDto;
import org.example.model.project.entities.ProjectInfo;
import org.example.model.project.statement.ProjectTimeSpent;
import org.example.model.project.vos.AddProjectInfoVo;
import org.example.model.project.vos.SearchProjectInfoVo;

import java.util.List;

/**
 * 项目信息服务层接口
 */
public interface ProjectInfoService extends IService<ProjectInfo> {

    /**
     * 添加一则项目信息记录
     */
    ResponseResult<Boolean> InsertProjectInfo(AddProjectInfoVo addProjectInfoVo);

    /**
     * 根据id修改一则项目信息记录
     */
    ResponseResult<Boolean> UpdateProjectInfoById(AddProjectInfoVo addProjectInfoVo);

    /**
     * 根据id删除一则项目信息记录
     */
    ResponseResult<Boolean> DeleteProjectInfoById(int id);

    /**
     * 根据条件分页查询项目信息
     */
    ResponseResult<PageResponseDto<List<ProjectInfoDto>>> SelectProjectInfoListByConditions(SearchProjectInfoVo searchProjectInfoVo);

    /**
     * 根据项目id获取项目名
     */
    String GetProjectNameById (int id);

    /**
     * 获取除公司开发类别以外的项目总用时统计
     */
    ResponseResult<List<ProjectTimeSpent>> GetAllProjectExCompanyTimeSpent();
}
